SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TCAMAR_CPAG_Q02]
/*----------------------------------------------------------------*/
/*-- Empresa		: OFISIS S.A.				  */
/*-- Cliente		: OFISIS			          */
/*-- Sistema		: Tesoreria				  */
/*-- Programa		: Reporte Seguimiento Aplicaciones Compro.*/
/*--			   a FACTURAS                             */
/*-- Script		: TDAMAR_OCPR_Q01		  	  */
/*-- Nombre		: SP_TCAMAR_OCPR_Q01	  	  	  */
/*-- Desarrollado	: Daniel Chiang			  	  */
/*-- Fecha		: 03/12/2001			 	  */
/*-- Base de Datos	: MS SQL Server 			  */
/*-- Versi½n		: 7.0					  */
/*----------------------------------------------------------------*/

/*----------------------------------------------------------------*/
/*-- Modificado por	 : 					  */
/*-- Fecha modificaci½n	 : 				 	  */
/*-- Detalle modificaci½n: 		n			  */
/*----------------------------------------------------------------*/
/* drop proc SP_TCAMAR_OCPR_Q01	 				  */
/* grant all on SP_TCAMAR_CPAG_Q02 to public			  */
/* SP_TCAMAR_OCPR_Q01 '01', '00000002', '00000002' 	 	  */
/*----------------------------------------------------------------*/

 @ISCO_EMPR TD_VC_002,
 @ISNU_AMAR_INIC TD_VC_008, 
 @ISNU_AMAR_FINA TD_VC_008
	As
Declare
 @CSCO_TIDO_ORIG   TD_VC_003,
 @CSNU_DOCU_ORIG   TD_VC_020,
 @CSCO_TIDO_DEST   TD_VC_003,
 @CSNU_DOCU_DEST   TD_VC_020,
 @CSNU_AMAR        TD_VC_008,
 @CDFE_AMAR	   TD_DT_001,
 @CSCO_MONE	   TD_VC_003,
 @CNIM_SALD_ORIG   TD_NU_016_004,
 @CNIM_SALD_DEST   TD_NU_016_004,
 @VSNU_AMAR_AUXI   TD_VC_008,
 @VINU_SECU        TD_IN_001

  Create Table #TWAMAR_CPAG
  ( NU_TRAN        Varchar(8) NULL, 
    NU_SECU        int  NULL,  
    FE_AMAR	   Datetime  NULL,
    CO_MONE	   VarChar(3)   NULL,	
    CO_TIDO_ORIG   VarChar(3)   NULL,
    NU_DOCU_ORIG   VarChar(15)   NULL,
    IM_SXAP_MORI   NUMERIC(16,4),
    CO_TIDO_DEST   VarChar(3)   NULL,
    NU_DOCU_DEST   VarChar(15)   NULL,
    IM_SALD_DEST   NUMERIC(16,4))

--Select @VINU_SECU = 0
-- El CU_TDAMAR_CPAG_Q02_1 posee un documento con su n-mero

Select @VSNU_AMAR_AUXI = '@@@@'

Declare CU_TDAMAR_CPAG_Q02_1 cursor
For
Select T1.NU_AMAR, T2.FE_AMAR, T2.CO_MONE, T1.TI_COMP_PAGO, T1.NU_DOCU_ORIG, T1.IM_MAPL_MCON
From TDAMAR_CPAG T1, TCAMAR_CPAG T2
Where T1.CO_EMPR = @ISCO_EMPR 
And T1.NU_AMAR >= @ISNU_AMAR_INIC 
And T1.NU_AMAR <= @ISNU_AMAR_FINA
AND T1.CO_EMPR = T2.CO_EMPR
AND T1.NU_AMAR = T2.NU_AMAR
And T1.TI_COMP_PAGO IS NOT NULL 

Open CU_TDAMAR_CPAG_Q02_1
Fetch CU_TDAMAR_CPAG_Q02_1 into @CSNU_AMAR, @CDFE_AMAR, @CSCO_MONE, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CNIM_SALD_ORIG
While @@fetch_status = 0
  Begin
    If @@fetch_status != 0
       Begin
         Raiserror 20001 'Fin de archivo'
         Close CU_TDAMAR_CPAG_Q02_1
         Deallocate CU_TDAMAR_CPAG_Q02_1
         Return 
       end 

    If @CSNU_AMAR != @VSNU_AMAR_AUXI
       Begin
	Select @VSNU_AMAR_AUXI = @CSNU_AMAR
	Select @VINU_SECU = 0
       End 

    Select @VINU_SECU = @VINU_SECU + 1

    Insert into #TWAMAR_CPAG (NU_TRAN, NU_SECU, FE_AMAR, CO_MONE, CO_TIDO_ORIG, NU_DOCU_ORIG, IM_SXAP_MORI)
    Values (@CSNU_AMAR, @VINU_SECU, @CDFE_AMAR, @CSCO_MONE, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CNIM_SALD_ORIG)

    Fetch CU_TDAMAR_CPAG_Q02_1 into @CSNU_AMAR, @CDFE_AMAR, @CSCO_MONE, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CNIM_SALD_ORIG
  End

Close CU_TDAMAR_CPAG_Q02_1
Deallocate CU_TDAMAR_CPAG_Q02_1

Select @VINU_SECU = 0
Select @VSNU_AMAR_AUXI = '@@@@'

-- cursor obtiene todas las letras del documento por proveedor
Declare CU_TDAMAR_CPAG_Q02_1 cursor
For
Select NU_AMAR, CO_TIDO_DEST, NU_DOCU_DEST, IM_PAGO_CDES
From TDAMAR_CPAG
Where CO_EMPR = @ISCO_EMPR 
And NU_AMAR >= @ISNU_AMAR_INIC 
And NU_AMAR <= @ISNU_AMAR_FINA
and CO_TIDO_DEST IS NOT NULL 

Open CU_TDAMAR_CPAG_Q02_1
Fetch CU_TDAMAR_CPAG_Q02_1 into @CSNU_AMAR, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST, @CNIM_SALD_DEST

While @@fetch_status = 0
  Begin
    If @@fetch_status != 0
       Begin         Raiserror 20001 'Fin de archivo'
         Close CU_TDAMAR_CPAG_Q02_1
         Deallocate CU_TDAMAR_CPAG_Q02_1
         Return 
       End 

    If @CSNU_AMAR != @VSNU_AMAR_AUXI
       Begin
	Select @VSNU_AMAR_AUXI = @CSNU_AMAR
	Select @VINU_SECU = 0
       End 

    Select @VINU_SECU = @VINU_SECU + 1

    If NOT Exists ( Select * From #TWAMAR_CPAG 
	Where NU_TRAN = @CSNU_AMAR
	And   NU_SECU = @VINU_SECU)
       Insert into #TWAMAR_CPAG (NU_TRAN, NU_SECU, CO_TIDO_DEST, NU_DOCU_DEST, IM_SALD_DEST)
       Values (@CSNU_AMAR, @VINU_SECU, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST, @CNIM_SALD_DEST)
    Else 
       Update #TWAMAR_CPAG 
       Set CO_TIDO_DEST = @CSCO_TIDO_DEST, NU_DOCU_DEST = @CSNU_DOCU_DEST, IM_SALD_DEST = @CNIM_SALD_DEST
       Where NU_TRAN = @CSNU_AMAR And NU_SECU = @VINU_SECU  

     Fetch CU_TDAMAR_CPAG_Q02_1 into @CSNU_AMAR, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST, @CNIM_SALD_DEST
  End

close CU_TDAMAR_CPAG_Q02_1
deallocate CU_TDAMAR_CPAG_Q02_1

Select  T1.NU_TRAN, T1.FE_AMAR, T2.DE_MONE, T1.CO_TIDO_ORIG, T1.NU_DOCU_ORIG, T1.IM_SXAP_MORI, T1.CO_TIDO_DEST, 
	T1.NU_DOCU_DEST, T1.IM_SALD_DEST, T2.SB_MONE 
from #TWAMAR_CPAG T1
Left Outer join TTMONE T2
On  T1.CO_MONE = T2.CO_MONE
Order By NU_TRAN, NU_SECU 
Return

/*------------------------------ FIN ---------------------------------*/


GO
